<html>
   <head>
      <link rel="stylesheet" type="text/css" href="style.css" />
   </head>
   <body onload="">
<h2 class="comptitle">Packet <i>AirFrame</i></h2>
<b>File: <a href="base-messages-AirFrame.msg.html">base/messages/AirFrame.msg</a></b><br/>
<p>Format of the packets that are sent to the channel</p>
<p>subclass if you want to create your own <a href="AirFrame.html">AirFrame</a> packet class
(see Omnet manual, chapter Messages - Inheritance among packet 
classes).</p>
<p>This packet format is used to send a packet from the physical
layer to the channel. All other physical layers that can 'hear'
this packet can evaluate noise, interference etc. from the
information contained in this packet (especially the signal):</p>
<p>Note: BasePhy layer creates AirFrames with a slightly higher 
priority than normal to ensure channel consistency. This means that before anything else happens
at a time point t every <a href="AirFrame.html">AirFrame</a> which ended at t has been removed and
every <a href="AirFrame.html">AirFrame</a> started at t has been added to the channel.
An example where this matters is a <a href="ChannelSenseRequest.html">ChannelSenseRequest</a> which ends at
the same time as an <a href="AirFrame.html">AirFrame</a> starts (or ends). Depending on which message
is handled first the result of <a href="ChannelSenseRequest.html">ChannelSenseRequest</a> would differ.</p>
<p>If you need more fields for whatever reason, please do NOT create
your own packet! Just extend (subclass) this packet format </p>
<h3 class="subtitle">Usage diagram:</h3>
<p>The following diagram shows usage relationships between types.
Unresolved types are missing from the diagram. Click <a href="full-msg-usage-diagram.html">here</a> to see the full picture.</p>
<img src="AirFrame-usage.png" ismap="yes" usemap="#usage-diagram"/><map name="usage-diagram"><area shape="rect" id="node1" href="AirFrame.html" title="Packet AirFrame" alt="" coords="5,6,80,34">
</map>
<h3 class="subtitle">Inheritance diagram:</h3>
<p>The following diagram shows inheritance relationships for this type.
Unresolved types are missing from the diagram. Click <a href="full-msg-inheritance-diagram.html">here</a> to see the full picture.</p>
<img src="AirFrame-inheritance.png" ismap="yes" usemap="#inheritance-diagram"/><map name="inheritance-diagram"><area shape="rect" id="node1" href="AirFrame.html" title="Packet AirFrame" alt="" coords="28,6,103,34">
<area shape="rect" id="node2" href="AirFrameUWBIR.html" title="Message AirFrameUWBIR" alt="" coords="5,83,125,111">
</map>
<h3 class="subtitle">Known subclasses:</h3>
<table>
<tr>
   <td>
      <a href="AirFrameUWBIR.html">AirFrameUWBIR</a>
      <i> (message)</i>
   </td>
   <td>
<i>(no description)</i>
   </td>
</tr>
</table>
<h3 class="subtitle">Fields:</h3>
<table class="paramtable">
   <tr>
      <th>Name</th>
      <th>Type</th>
      <th>Description</th>
   </tr>
<tr class="local">
   <td width="150">id</td>
   <td width="100">
      <i>
long</i>
   </td>
   <td>
<p>Unique ID of the <a href="AirFrame.html">AirFrame</a> used as identifier for
related control-AirFrames</p>
</td>
</tr>
<tr class="local">
   <td width="150">duration</td>
   <td width="100">
      <i>
simtime_t</i>
   </td>
   <td>
<p>time the AirFrames takes to be transmited (without propagation delay)</p>
</td>
</tr>
<tr class="local">
   <td width="150">state</td>
   <td width="100">
      <i>
int</i>
   </td>
   <td>
<p>state of the AirFrames, used by the physical layer
as state machine for delay and transmission duration
simulation</p>
</td>
</tr>
<tr class="local">
   <td width="150">signal</td>
   <td width="100">
      <i>
Signal</i>
   </td>
   <td>
<p>Contains the physical data of this <a href="AirFrame.html">AirFrame</a></p>
</td>
</tr>
<tr class="local">
   <td width="150">type</td>
   <td width="100">
      <i>
int</i>
   </td>
   <td>
<p>If type isn't null then this is a control-<a href="AirFrame.html">AirFrame</a>
and type specifies the control type.</p>
</td>
</tr>
<tr class="local">
   <td width="150">channel</td>
   <td width="100">
      <i>
int</i>
   </td>
   <td>
<p>the channel of the radio used for this transmission</p>
</td>
</tr>
<tr class="local">
   <td width="150">protocolId</td>
   <td width="100">
      <i>
int</i>
   </td>
   <td>
<p>the id of the phy protocol of this airframe</p>
</td>
</tr>
</table>
<h3 class="subtitle">Source code:</h3>
<pre class="src"><span style="color: #808080; font-style: italic; ">//
// Format of the packets that are sent to the channel
//
// subclass if you want to create your own AirFrame packet class
// (see Omnet manual, chapter Messages - Inheritance among packet 
// classes).
//
// This packet format is used to send a packet from the physical
// layer to the channel. All other physical layers that can 'hear'
// this packet can evaluate noise, interference etc. from the
// information contained in this packet (especially the signal):
//
// Note: BasePhy layer creates AirFrames with a slightly higher 
// priority than normal to ensure channel consistency. This means that before anything else happens
// at a time point t every AirFrame which ended at t has been removed and
// every AirFrame started at t has been added to the channel.
// An example where this matters is a ChannelSenseRequest which ends at
// the same time as an AirFrame starts (or ends). Depending on which message
// is handled first the result of ChannelSenseRequest would differ.
//
// If you need more fields for whatever reason, please do NOT create
// your own packet! Just extend (subclass) this packet format 
//
</span><span style="color: #800000; font-weight: bold; ">packet</span><span style="color: #000000; "> </span><span style="color: #000000; ">AirFrame</span><span style="color: #000000; ">
{
    </span><span style="color: #000000; ">Signal</span><span style="color: #000000; "> </span><span style="color: #000000; ">signal</span><span style="color: #000000; ">;		</span><span style="color: #808080; font-style: italic; ">// Contains the physical data of this AirFrame
</span><span style="color: #000000; ">
    </span><span style="color: #000000; ">simtime_t</span><span style="color: #000000; "> </span><span style="color: #000000; ">duration</span><span style="color: #000000; ">;	</span><span style="color: #808080; font-style: italic; ">// time the AirFrames takes to be transmited (without propagation delay)
</span><span style="color: #000000; ">
    </span><span style="color: #000080; font-weight: bold; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">state</span><span style="color: #000000; "> = </span><span style="color: #008000; ">1</span><span style="color: #000000; ">; 		</span><span style="color: #808080; font-style: italic; ">// state of the AirFrames, used by the physical layer
</span><span style="color: #000000; ">        					</span><span style="color: #808080; font-style: italic; ">// as state machine for delay and transmission duration
</span><span style="color: #000000; ">        					</span><span style="color: #808080; font-style: italic; ">// simulation
</span><span style="color: #000000; ">
    </span><span style="color: #000080; font-weight: bold; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">type</span><span style="color: #000000; "> = </span><span style="color: #008000; ">0</span><span style="color: #000000; ">;		</span><span style="color: #808080; font-style: italic; ">// If type isn't null then this is a control-AirFrame
</span><span style="color: #000000; ">        					</span><span style="color: #808080; font-style: italic; ">// and type specifies the control type.
</span><span style="color: #000000; ">
    </span><span style="color: #000080; font-weight: bold; ">long</span><span style="color: #000000; "> </span><span style="color: #000000; ">id</span><span style="color: #000000; ">;			</span><span style="color: #808080; font-style: italic; ">// Unique ID of the AirFrame used as identifier for
</span><span style="color: #000000; ">							</span><span style="color: #808080; font-style: italic; ">// related control-AirFrames
</span><span style="color: #000000; ">
    </span><span style="color: #000080; font-weight: bold; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">protocolId</span><span style="color: #000000; ">;		</span><span style="color: #808080; font-style: italic; ">//the id of the phy protocol of this airframe
</span><span style="color: #000000; ">
    </span><span style="color: #000080; font-weight: bold; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">channel</span><span style="color: #000000; ">;    	</span><span style="color: #808080; font-style: italic; ">//the channel of the radio used for this transmission
</span><span style="color: #000000; ">}
</span></pre>
   <hr><p class="footer"><a href="http://creativecommons.org/licenses/by-sa/3.0" target="_top"><img src="by-sa.png"></a> This documentation is released under the <a href="http://creativecommons.org/licenses/by-sa/3.0" target="_top">Creative Commons license</a></p>
   </body>
</html>
